SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
LINUX Básico


                   TAKASHI SUGASAWA




 LINUX Básico (6. Shells(1))          1
Programa del curso

   1.   Introducción a LINUX
   2.   Operación básica de LINUX
   3.   Operación de archivos y directorios
   4.   Editor vi
   5.   Comprensión del sistema de ficheros
   6.   Shells(1)
   7.   Shells(2)
   8.   Shells(3)
   9.   Otros comandos

                 LINUX Básico (6. Shells(1))   2
LINUX Básico
6. Shells(1)
                     Índice
    6.1 Comprensión de shells
    6.2 Caracteres para completar nombres
        del ficheros
    6.3 Tuberías y redireccionamientos de
        entrada y salida
    6.4 Sustituciones
    6.5 Comillas y apóstrofos
    6.6 Grupos de comandos

               LINUX Básico (6. Shells(1))   3
6.1 Comprensión de shells
(1) ¿Qué es shell?
 • Shell es una aplicación como "Símbolo del sistema" en
     el Windows.
 •   Shell empieza automáticamente cuando un usuario se
     registra.
 •   Shell funciona como interfaz principal entre el sistema
     operativo y el usuario.
 •   Shell interpreta sus comandos u órdenes.
 •   Shell no es un parte del núcleo del sistema operativo.
 •   Hay múltiples shells instalados (Shell Bourne, BASH,
     Shell C, tcsh, zsh,...). El shell por omisión de LINUX es
     bash.



                      LINUX Básico (6. Shells(1))            4
6.1(2) Variedad de shells
 Shell Bourne   •   El shell más antiguo.
 (/bin/sh)      •   El shell original de UNIX.
                •   Está disponible en todos los sistemas de UNIX.
 Shell C        •    El shell antiguo y muy común también.
 (/bin/csh)     •    Está disponible en casi todos los sistemas de UNIX.
                •    La sintaxis del shell C es muy parecida al lenguaje
                    de programación C.
 BASH           •   El shell derivado de Shell Bourne.
 (/bin/bash)    •   Proporciona varias características mejoradas.
                •   El shell por omisión de LINUX
 tcsh           •   El shell derivado de Shell C.
 (/bin/tcsh)    •   Proporciona varias características mejoradas.

    Hay otros, Shell Z, Shell Korn, ...

                            LINUX Básico (6. Shells(1))                    5
6.1(3) Shells disponibles en el sistema
 Para saber los shells disponibles en el sistema, se
 referimos el archivo "/etc/shells".

 [usr001@linuxpc usr001]$ cat /etc/shells
 /bin/sh
 /bin/bash
 /sbin/nologin
 /bin/bash2
 /bin/ash
 /bin/bsh
 /bin/tcsh
 /bin/csh




                      LINUX Básico (6. Shells(1))      6
6.1(4) Cambio el login shell
 Para cambiar el login shell, usamos el comando "chsh".
(28) chsh     cambiar el login shell.
  [usr001@linuxpc usr001]$ chsh
  Cambiando intérprete de órdenes para usr001.
  Password:
  Nuevo intérprete de órdenes [/bin/bash]: /bin/csh
  Se ha cambiado el intérprete de órdenes.
  [usr001@linuxpc usr001]$ cat /etc/passwd
  root:x:0:0:root:/root:/bin/bash

                              (omisión)

  usr000:x:500:500::/home/usr000:/bin/bash
  usr001:x:501:501::/home/usr001:/bin/csh
  usr002:x:502:502::/home/usr002:/bin/bash

                              (omisión)

     Si no hay una razón especial, vamos a usar BASH.
                      LINUX Básico (6. Shells(1))         7
6.2 Caracteres para completar nombres del ficheros
(1) El carácter comodín “*”
 • El asterisco “*” es el carácter comodín, significa
     cualquiera y todos los caracteres.
 •   Por ejemplo, “a*” significa todos los ficheros que
     comiencen con una a.
     [usr001@linuxpc usr001]$ ls
     abxx.txt abyy xx.txt xxyyzz
     [usr001@linuxpc usr001]$ ls a*
     abxx.txt abyy
     [usr001@linuxpc usr001]$ ls *.txt
     abxx.txt xx.txt
     [usr001@linuxpc usr001]$ ls *yy*
     abyy xxyyzz
     [usr001@linuxpc usr001]$ ls *
     abxx.txt abyy xx.txt xxyyzz
     [usr001@linuxpc usr001]$ ls b*
     ls: b*: No existe el fichero o el directorio
     [usr001@linuxpc usr001]$ rm *
     [usr001@linuxpc usr001]$ ls

                      LINUX Básico (6. Shells(1))         8
6.2(2) El carácter comodín “?”

 • El signo interrogación “?” es el carácter comodín,
    significa un solo carácter cualquier.
    [usr001@linuxpc   usr001]$ ls
    a1 a2 a3 b1       b2 c1 d
    [usr001@linuxpc   usr001]$ ls a?
    a1 a2 a3
    [usr001@linuxpc   usr001]$ ls ?1
    a1 b1 c1
    [usr001@linuxpc   usr001]$ ls ??
    a1 a2 a3 b1       b2 c1
    [usr001@linuxpc   usr001]$ ls ?
    d




                      LINUX Básico (6. Shells(1))       9
6.2(3) La expresión “[ ]”

 • La expresión “[ ]” (corchetes) significa un carácter
    simple si encierra entre corchetes una serie de
    caracteres.
    [usr001@linuxpc   usr001]$ ls
    a1 a2 a3 a4       a5 b1 c1 d1 e1                x1   y1   z1
    [usr001@linuxpc   usr001]$ ls a[2-4]
    a2 a3 a4
    [usr001@linuxpc   usr001]$ ls         [a-z]1
    a1 b1 c1 d1       e1 x1 y1            z1
    [usr001@linuxpc   usr001]$ ls         [ace][135]
    a1 a3 a5 c1       e1
    [usr001@linuxpc   usr001]$ ls         [a-c,xz]?
    a1 a2 a3 a4       a5 b1 c1            x1 z1




                      LINUX Básico (6. Shells(1))                  10
6.3 Tuberías y redireccionamientos de entrada y
    salida
(1) stdin, stdout, stderr
 Salida estándar (stdout)
 • Algunos comandos envían su salida hacia la pantalla.
   A la verdad, estos comandos envían su salida hacia un
   archivo especial llamado "stdout", y el sistema de
   LINUX asocia "stdout" con la pantalla.

                             salida     std
           cat /etc/passwd               std
                                        out         pantalla
                                         out




                      LINUX Básico (6. Shells(1))              11
Entrada estándar (stdin)
• Algunos comandos esperan una entrada desde la
  terminal o el teclado.
  A la verdad, estos comandos esperan la entrada desde
  un archivo especial llamado “stdin”, y el sistema de
  LINUX asocia "stdin" con el teclado.
  teclado           entrada           salida
             std
              std                                 std
                                                   std
             in               cat -               out    pantalla
              in                                   out


    [usr001@linuxpc usr001]$ cat -
    abc
    abc
    123
    123
    xyz
    xyz
            Teclear "Cntl-d"
             para escapar.

                    LINUX Básico (6. Shells(1))                     12
Salida de error estándar (stderr)
• Algunos comandos envían un mensaje de error hacia un
   pantalla.
   A la verdad, estos comandos envían un mensaje de
   error hacia un archivo especial llamado "stderr", y el
   sistema de LINUX asocia "stderr" con la pantalla.
                          error     std
                                     std
               comando              err              pantalla
                                     err

                                                    No existe
         [usr001@linuxpc usr001]$ ls
         [usr001@linuxpc usr001]$ cat a > b                     error
         cat: a: No existe el fichero o el directorio
         [usr001@linuxpc usr001]$ ls
         b
 se ha   [usr001@linuxpc usr001]$ cat b   vacío
creado
         [usr001@linuxpc usr001]$

                   "stdout" y "stderr" son diferentes.
                      LINUX Básico (6. Shells(1))                  13
6.3(2) Tuberías
• Con tuberías, se puede utilizar la salida de un comando
    como entrada de otro.
•   El carácter de tubería es una barra vertical "|".
    (ejemplo) queremos concatenar 2 archivos "/etc/passwd" y
            "/etc/group", y verlo con el paginador "more".
                                     si usamos un tubería ...
cat /etc/passwd /etc/group > tmp
                                           cat /etc/passwd /etc/group | more
more tmp
                  archivo
                 temporal

• Una tubería conecta el "stdout" de un comando hacia el
    "stdin" de otro.
                                   tubería
                salida   std                        std    entrada
     comando1             std                        std             comando2
                         out
                          out       conectar        in
                                                     in

                          LINUX Básico (6. Shells(1))                           14
Los comandos “more”, “less”, “grep”, “sort” se utilizan
frecuentemente con las tuberías.
(29) grep     buscar patrones que se encuentren en
              archivos e informa dónde localiza esos
              patrones.
              (ej.) grep exp-reg arch1 [arch2 ...]
                     sale los líneas que contienen “usr00”

[usr000@linuxpc usr000]$ cat /etc/passwd | grep usr00
usr000:x:500:500::/home/usr000:/bin/bash
usr001:x:501:501::/home/usr001:/bin/bash   = “grep usr00
usr002:x:502:502::/home/usr002:/bin/bash      /etc/passwd”
usr003:x:503:503::/home/usr003:/bin/bash
usr004:x:504:504::/home/usr004:/bin/bash
usr005:x:505:505::/home/usr005:/bin/bash
usr006:x:506:506::/home/usr006:/bin/bash
usr007:x:507:507::/home/usr007:/bin/bash
usr008:x:508:508::/home/usr008:/bin/bash
usr009:x:509:509::/home/usr009:/bin/bash

                     LINUX Básico (6. Shells(1))             15
(30) sort    ordenar archivos de texto.
             (ej.) sort arch1 [arch2 ...]
                                             Para la salida en
                                             una sola columna
  [usr001@linuxpc   usr001]$ ls -i1
   400941 a
   400940 abc
   400936 bc
   400942 defg                                       usando primer campo
   400937 xyz
  [usr001@linuxpc   usr001]$ ls -i1 | sort
   400936 bc
   400937 xyz
   400940 abc
   400941 a                                             descendentemente
   400942 defg
  [usr001@linuxpc   usr001]$ ls -i1 | sort -r
   400942 defg
   400941 a
   400940 abc
   400937 xyz                                           usando segundo campo
   400936 bc
  [usr001@linuxpc   usr001]$ ls -i1 | sort -r +1
   400937 xyz
   400942 defg
   400936 bc
   400940 abc
   400941 a

                       LINUX Básico (6. Shells(1))                             16
6.3(3) Redireccionamientos

 Redireccionamiento de salida
 • Se emplea para redireccionar la salida de un comando
     hacia un archivo. En vez de que la salida vaya a la
     pantalla de la terminal, se coloca en un archivo.
 •   Los símbolos de redireccionamiento de salida son “>”,
     “>>”, “2>”, “2>>”, “&>”.
       [usr001@linuxpc usr001]$ date
       jue sep 16 20:08:37 ECT 2004
       [usr001@linuxpc usr001]$ date > arch1
       [usr001@linuxpc usr001]$ cat arch1
       jue sep 16 20:08:42 ECT 2004




                      LINUX Básico (6. Shells(1))            17
• El redireccionamiento de salida conecta el "stdout" o
  “stderr” de un comando hacia un archivo.

                               std            “>”, “>>”        arch
                                std                             arch
                               out
                                out                             ivo
                                                                 ivo
             salida

                                                        “&>”
  comando                                                      arch
                                                                arch
                      “2>&1”          “1>&2”
                                                                ivo
                                                                 ivo
            mensaje
            de error           std
                                std                            arch
                                                                arch
                               err
                                err                             ivo
                                                                 ivo
                                            “2>”, “2>>”




                          LINUX Básico (6. Shells(1))                  18
Diferencia entre “>” y “>>” (“2>” y “2>>”)

 • Si el archivo no existe, son iguales.
 • Si está el archivo, “>” sobrescribe el archivo, “>>” agregar al
   archivo.
    [usr001@linuxpc usr001]$ ls                no existente
    [usr001@linuxpc usr001]$ whoami > arch1
    [usr001@linuxpc usr001]$ cat arch1
    usr001                                    ya existente
    [usr001@linuxpc usr001]$ date > arch1
    [usr001@linuxpc usr001]$ cat arch1
                                            se ha sobrescrito
    jue sep 16 22:06:45 ECT 2004
    [usr001@linuxpc usr001]$ whoami >> arch1
    [usr001@linuxpc usr001]$ cat arch1
    jue sep 16 22:06:45 ECT 2004
    usr001                          se ha añadido



(31) whoami Presenta su nombre de usuario.

                          LINUX Básico (6. Shells(1))                19
“>” y “2>”, “&>”

     [usr001@linuxpc usr001]$ ls
     arch1
     [usr001@linuxpc usr001]$ cat arch1          existente
     jue sep 16 22:30:52 ECT 2004
     [usr001@linuxpc usr001]$ cat arch1         arch2      no existente
     jue sep 16 22:18:33 ECT 2004                        salida de “stdout”
     cat: arch2: No existe el fichero o         el directorio      salida de
     [usr001@linuxpc usr001]$ cat arch1         arch2 >a 2>b       “stderr”
     [usr001@linuxpc usr001]$ cat a
     jue sep 16 22:18:33 ECT 2004
     [usr001@linuxpc usr001]$ cat b
     cat: arch2: No existe el fichero o         el directorio
     [usr001@linuxpc usr001]$ cat arch1         arch2 &>c
     [usr001@linuxpc usr001]$ cat c
     jue sep 16 22:18:33 ECT 2004
     cat: arch2: No existe el fichero o         el directorio




                       LINUX Básico (6. Shells(1))                             20
“2>&1” (“1>&2”)


  [usr001@linuxpc usr001]$ ls
  arch1
  [usr001@linuxpc usr001]$ cat arch1         existente
  jue sep 16 22:30:52 ECT 2004
  [usr001@linuxpc usr001]$ cat arch1       arch2         no existente
  jue sep 16 22:30:52 ECT 2004                                 salida de “stdout”
  cat: arch2: No existe el fichero o       el directorio     salida de
  [usr001@linuxpc usr001]$ cat arch1       arch2 2>&1 | sort “stderr”
  cat: arch2: No existe el fichero o       el directorio
  jue sep 16 22:30:52 ECT 2004
  [usr001@linuxpc usr001]$ cat arch1       arch2 >a 2>&1                = “&>”
  [usr001@linuxpc usr001]$ cat a
  jue sep 16 22:30:52 ECT 2004
  cat: arch2: No existe el fichero o       el directorio
  [usr001@linuxpc usr001]$ cat arch1
  [usr001@linuxpc usr001]$ cat a
                                           arch2 >>a 2>&1                 orden es
  jue sep 16 22:30:52 ECT 2004                                            importante
  cat: arch2: No existe el fichero o       el directorio
  jue sep 16 22:30:52 ECT 2004
  cat: arch2: No existe el fichero o       el directorio
  [usr001@linuxpc usr001]$ cat arch1       arch2 2>&1 >a                “2>&1” no
  cat: arch2: No existe el fichero o       el directorio                 funciona
  [usr001@linuxpc usr001]$ cat a
  jue sep 16 22:30:52 ECT 2004




                       LINUX Básico (6. Shells(1))                                  21
Redireccionamiento de entrada
• Se usa para redireccionar la entrada en un comando a
    fin de que provenga de un archivo y no de la terminal.
•   Los símbolos de redireccionamiento de entrada son “<”.
•   El símbolo “<” conecta el "stdin” de un comando con
    un archivo.
                       <
             arch                    std     entrada
              arch                    std              comando
              ivo
               ivo    conectar       in
                                      in


[usr001@linuxpc usr001]$ grep usr000 < /etc/passwd
usr000:x:500:500::/home/usr000:/bin/bash                         los
[usr001@linuxpc usr001]$ cat /etc/passwd | grep usr000           resultados
                                                                 son
usr000:x:500:500::/home/usr000:/bin/bash                         iguales.
[usr001@linuxpc usr001]$ grep usr000 /etc/passwd
usr000:x:500:500::/home/usr000:/bin/bash


                       LINUX Básico (6. Shells(1))                       22
6.4 Sustituciones
  (1) Sustitución de variables
  • Los variables son disponibles en el shell.
  • Algunos variables se definen por el shell o el sistema
      de LINUX.
Variables principales disponibles en el shell

  HOME         Nombre de ruta de acceso completo de su directorio base.
  LOGNAME      Su nombre de usuario.
  PATH         Directorios en los que el shell busca comandos.
  PS1          Principal indicador del shell.
  PWD          Nombre de ruta de acceso completo del directorio de trabajo
               actual.
  SHELL        Nombre de su shell actual.
  TERM         Tipo de terminal que utiliza usted.

                              LINUX Básico (6. Shells(1))                    23
• Con el carácter “$”, podemos sustituir el nombre de un
  variable con su valor.
                                            sustituir
[usr000@linuxpc   usr000]$ echo $HOME
/home/usr000                                               echo /home/usr000
[usr000@linuxpc   usr000]$ ls -la $HOME
total 28
drwx------    2   usr000     usr000           4096   sep    17   12:37   .
drwxr-xr-x   15   root       root             4096   sep    15   23:46   ..
-rw-------    1   usr000     usr000           1332   sep    17   12:28   .bash_history
-rw-r--r--    1   usr000     usr000             24   sep    15   23:39   .bash_logout
-rw-r--r--    1   usr000     usr000            191   sep    15   23:39   .bash_profile
-rw-r--r--    1   usr000     usr000            124   sep    15   23:39   .bashrc
-rw-r--r--    1   usr000     usr000            120   sep    15   23:39   .gtkrc
[usr000@linuxpc   usr000]$   cd $HOME
                                                 cambia el directorio de trabajo
                                                 actual a su directorio base.
                                                 = “cd”
                                                 = “cd ~”


(32) echo         Toma el argumento que se le pasa y lo
                  escribe a la salida estándar.
                             LINUX Básico (6. Shells(1))                             24
6.4(2) Sustitución de comandos
 • La sustitución de comandos sustituye el resultado de un
     comando por un parámetro de posición.
 •   Para sustituir un comando, ponemos el comando entre
     dos “`” (acentos graves).    ` comando `

     [usr001@linuxpc usr001]$ whoami
     usr001
     [usr001@linuxpc usr001]$ echo `whoami` = “echo usr001”
     usr001
     [usr001@linuxpc usr001]$ grep `whoami` /etc/passwd
     usr001:x:501:501::/home/usr001:/bin/bash

                                                      = “grep usr001
                                                       /etc/passwd”




                        LINUX Básico (6. Shells(1))                    25
6.5 Comillas y apóstrofos
 (1) Comillas " "
 • Las comillas " " desactivan los caracteres especiales, “*”, “?”, “[”,
     “]”, “>”, “<”, ...
 •   Sin embargo, la sustitución de variables “$” y comandos ` ` aún
     se lleva a afecto.
[usr000@linuxpc usr000]$ ls
a                               el carácter comodín
[usr000@linuxpc usr000]$ ls *
a                                  un nombre de archivo
[usr000@linuxpc usr000]$ ls "*"
ls: *: No existe el fichero o el directorio
[usr000@linuxpc usr000]$ date > " " un archivo del
[usr000@linuxpc usr000]$ ls -l            que nombre es  un archivo
                                          un espacio.    existe.
total 4
-rw-rw-r--    1 usr000   usr000               29 sep 17 09:47
-rw-rw-r--    1 usr000   usr000                0 sep 17 09:46 a
[usr000@linuxpc usr000]$ cat " "
vie sep 17 09:47:08 ECT 2004
[usr000@linuxpc usr000]$ rm " "
[usr000@linuxpc usr000]$


                           LINUX Básico (6. Shells(1))                     26
sustitución de variables
[usr000@linuxpc   usr000]$ echo $HOME
/home/usr000
[usr000@linuxpc   usr000]$ echo "$HOME"                     para desactivar
/home/usr000                                                la sustitución,
[usr000@linuxpc   usr000]$ echo "$HOME"                    "" es necesario.
$HOME
[usr000@linuxpc   usr000]$ echo `whoami`                 sustitución de
usr000                                                   comandos
[usr000@linuxpc   usr000]$ echo "`whoami`"
usr000
[usr000@linuxpc   usr000]$ echo "`whoami`"                 para desactivar
`whoami`                                                     la sustitución,
                                                             "" es necesario.




                      LINUX Básico (6. Shells(1))                               27
(2) Apóstrofos ' '
• Los apóstrofos ' ' desactivan todo el análisis sintáctico de shell.
 [usr000@linuxpc usr000]$ ls
 a                              el carácter comodín
 [usr000@linuxpc usr000]$ ls ?
 a                                  un nombre de archivo
 [usr000@linuxpc usr000]$ ls '?'
 ls: ?: No existe el fichero o el directorio
 [usr000@linuxpc usr000]$ echo $HOME        sustitución de variables
 /home/usr000
 [usr000@linuxpc usr000]$ echo '$HOME'         se ha desactivado
 $HOME                                         la sustitución.
 [usr000@linuxpc usr000]$ echo `whoami`
 usr000                                          sustitución de
 [usr000@linuxpc usr000]$ echo '`whoami`' comandos
 `whoami`
                                            se ha desactivado
                                            la sustitución.




                          LINUX Básico (6. Shells(1))                   28
6.6 Grupos de comandos
 (1) Secuencia de comandos (punto y coma “;”)
 • Un comando simple se concluye con un “Enter”.
 • Si quiere colocar múltiples comandos en una línea de comando
     antes de presionar “Enter”, puede delimitar comandos individuales
     con un signo de punto y coma “;”.
                     comando1 ; comando2 ; comando3
 •   El shell ejecuta cada comando en secuencia, como si usted hubiera
     escrito cada uno de ellos de forma independiente en una línea.

 [usr000@linuxpc usr000]$ whoami ; date ; cal
 usr000
 vie sep 17 10:43:44 ECT 2004
  septiembre de 2004
 do lu ma mi ju vi sá
           1 2 3 4
  5 6 7 8 9 10 11
 12 13 14 15 16 17 18
 19 20 21 22 23 24 25
 26 27 28 29 30


                           LINUX Básico (6. Shells(1))                   29
6.6(2) Grupos de comandos
  Llaves { }
 • Si quiere redireccionar la entrada o la salida hacia todos los
     comandos como un grupo, puede hacerlo al convertir la línea de
     comando en un grupo de comandos.
 •   Un grupo de comandos son varios comandos encerrados entre
     llaves { }.
                   { comando1; comando2; } > archivo
                       { comando1; comando2; } | archivo
       un espacio es                                       punto y coma es necesario.
       necesario.
 [usr000@linuxpc usr000]$ { whoami; date; } > a
 [usr000@linuxpc usr000]$ cat a
 usr000
 vie sep 17 11:08:30 ECT 2004
 [usr000@linuxpc usr000]$ { whoami; date; } | sort -r
 vie sep 17 11:09:23 ECT 2004
 usr000



                             LINUX Básico (6. Shells(1))                                30
¡ Muchas gracias por su atención !
        ¡ Hasta pronto !
 En la próxima hora, vamos a aprender sobre el
 control de procesos.




                 LINUX Básico (6. Shells(1))     31

Más contenido relacionado

La actualidad más candente

Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Julio Caiza
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Alan Resendiz
 
Script Y Comandos De Linux
Script Y Comandos De LinuxScript Y Comandos De Linux
Script Y Comandos De Linuxsilvanetorres
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linuxmaomaq
 
Tutorial Comandos
Tutorial ComandosTutorial Comandos
Tutorial Comandoseguzman
 
9 managing processes
9  managing processes9  managing processes
9 managing processescyberleon95
 
Algunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUXAlgunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUXamerica123456
 
Comandos más utilizados en linux
Comandos más utilizados en linuxComandos más utilizados en linux
Comandos más utilizados en linuxAldo Vilches Godoy
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linuxguest238e87
 
COMANDOS BASICOS DE LINUX
COMANDOS BASICOS DE LINUXCOMANDOS BASICOS DE LINUX
COMANDOS BASICOS DE LINUXvicente choque
 
Taller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29oTaller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29oTomás Vírseda
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonEmerson Gonzalez IF04 T I
 

La actualidad más candente (20)

Comandos de uso frecuente
Comandos de uso frecuenteComandos de uso frecuente
Comandos de uso frecuente
 
Linux comandos 1
Linux comandos 1Linux comandos 1
Linux comandos 1
 
Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)
 
Mis comandos favoritos en linux parte 0
Mis comandos favoritos en linux parte 0Mis comandos favoritos en linux parte 0
Mis comandos favoritos en linux parte 0
 
Curso gratuito de Redis
Curso gratuito de RedisCurso gratuito de Redis
Curso gratuito de Redis
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.
 
Script Y Comandos De Linux
Script Y Comandos De LinuxScript Y Comandos De Linux
Script Y Comandos De Linux
 
Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linux
 
Manual de linux
Manual de linuxManual de linux
Manual de linux
 
Tutorial Comandos
Tutorial ComandosTutorial Comandos
Tutorial Comandos
 
9 managing processes
9  managing processes9  managing processes
9 managing processes
 
Algunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUXAlgunos comandos de GNU-LINUX
Algunos comandos de GNU-LINUX
 
Comandos más utilizados en linux
Comandos más utilizados en linuxComandos más utilizados en linux
Comandos más utilizados en linux
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linux
 
Sistema Operativos - Objetivo 3 - Comandos Linux
Sistema Operativos - Objetivo 3 - Comandos LinuxSistema Operativos - Objetivo 3 - Comandos Linux
Sistema Operativos - Objetivo 3 - Comandos Linux
 
COMANDOS BASICOS DE LINUX
COMANDOS BASICOS DE LINUXCOMANDOS BASICOS DE LINUX
COMANDOS BASICOS DE LINUX
 
Taller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29oTaller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29o
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emerson
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 

Destacado

capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01ULEAM
 
UBUNTU-1
UBUNTU-1UBUNTU-1
UBUNTU-1ULEAM
 
Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1ULEAM
 
Linux basico-2.PDF
Linux basico-2.PDFLinux basico-2.PDF
Linux basico-2.PDFULEAM
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Instalación de Ubuntu
Instalación de UbuntuInstalación de Ubuntu
Instalación de UbuntuULEAM
 
Comandos de linux
Comandos de linuxComandos de linux
Comandos de linuxyaser6700
 
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessSistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessULEAM
 
Taller de Shell Scripting
Taller de Shell ScriptingTaller de Shell Scripting
Taller de Shell ScriptingEnrique Verdes
 
Linux basico-3.PDF
Linux basico-3.PDFLinux basico-3.PDF
Linux basico-3.PDFULEAM
 
Manual de bouml
Manual de boumlManual de bouml
Manual de boumlULEAM
 
Aplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGAplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGGabyNarvaez
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivosJavier Muñoz
 

Destacado (20)

capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01
 
UBUNTU-1
UBUNTU-1UBUNTU-1
UBUNTU-1
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Diseño de reporte
Diseño de reporteDiseño de reporte
Diseño de reporte
 
Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1
 
Linux basico-2.PDF
Linux basico-2.PDFLinux basico-2.PDF
Linux basico-2.PDF
 
Comandos del sistema
Comandos del sistemaComandos del sistema
Comandos del sistema
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Instalación de Ubuntu
Instalación de UbuntuInstalación de Ubuntu
Instalación de Ubuntu
 
Manual centos_6
Manual centos_6Manual centos_6
Manual centos_6
 
Comandos de linux
Comandos de linuxComandos de linux
Comandos de linux
 
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessSistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
 
Taller de Shell Scripting
Taller de Shell ScriptingTaller de Shell Scripting
Taller de Shell Scripting
 
W7
W7W7
W7
 
Linux basico 1
Linux basico 1Linux basico 1
Linux basico 1
 
Linux basico-3.PDF
Linux basico-3.PDFLinux basico-3.PDF
Linux basico-3.PDF
 
Manual de bouml
Manual de boumlManual de bouml
Manual de bouml
 
Aplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGAplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOG
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivos
 

Similar a Linux Shells Introducción

Unidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración LinuxUnidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración Linuxvverdu
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhatmmartinv
 
Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformaticscursoNGS
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
 
01 practicas de laboratorio
01 practicas de laboratorio01 practicas de laboratorio
01 practicas de laboratorioFree Lancer
 
Sobreviviendo commando style
Sobreviviendo commando styleSobreviviendo commando style
Sobreviviendo commando styleJorge Ortiz
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)JohannaCamila
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXJose Pla
 
T3.2 alberrto soria
T3.2 alberrto soria T3.2 alberrto soria
T3.2 alberrto soria jsota4
 
T3.2 javier sota
T3.2 javier sota T3.2 javier sota
T3.2 javier sota jsota4
 
T3.2 borjasanz
T3.2 borjasanzT3.2 borjasanz
T3.2 borjasanzborjasanz8
 
Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución LinuxMauro Parra-Miranda
 

Similar a Linux Shells Introducción (20)

Unidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración LinuxUnidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración Linux
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhat
 
Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformatics
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0
 
Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linux
 
01 practicas de laboratorio
01 practicas de laboratorio01 practicas de laboratorio
01 practicas de laboratorio
 
arquitectura-de-linux
arquitectura-de-linuxarquitectura-de-linux
arquitectura-de-linux
 
Sobreviviendo commando style
Sobreviviendo commando styleSobreviviendo commando style
Sobreviviendo commando style
 
Resumen scripts unix
Resumen scripts unixResumen scripts unix
Resumen scripts unix
 
Linux
LinuxLinux
Linux
 
17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUX
 
T3.2 alberrto soria
T3.2 alberrto soria T3.2 alberrto soria
T3.2 alberrto soria
 
T3.2 javier sota
T3.2 javier sota T3.2 javier sota
T3.2 javier sota
 
T3.2 borjasanz
T3.2 borjasanzT3.2 borjasanz
T3.2 borjasanz
 
Anonimo el libro hacker
Anonimo   el libro hackerAnonimo   el libro hacker
Anonimo el libro hacker
 
Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución Linux
 

Más de ULEAM

CAPITULO-2-2011
CAPITULO-2-2011CAPITULO-2-2011
CAPITULO-2-2011ULEAM
 
CAP-3
CAP-3CAP-3
CAP-3ULEAM
 
Linux basico-1.PDF
Linux basico-1.PDFLinux basico-1.PDF
Linux basico-1.PDFULEAM
 
Linux basico-6.PDF
Linux basico-6.PDFLinux basico-6.PDF
Linux basico-6.PDFULEAM
 
Linux basico-4.PDF
Linux basico-4.PDFLinux basico-4.PDF
Linux basico-4.PDFULEAM
 
Manual de kicad
Manual de kicadManual de kicad
Manual de kicadULEAM
 

Más de ULEAM (6)

CAPITULO-2-2011
CAPITULO-2-2011CAPITULO-2-2011
CAPITULO-2-2011
 
CAP-3
CAP-3CAP-3
CAP-3
 
Linux basico-1.PDF
Linux basico-1.PDFLinux basico-1.PDF
Linux basico-1.PDF
 
Linux basico-6.PDF
Linux basico-6.PDFLinux basico-6.PDF
Linux basico-6.PDF
 
Linux basico-4.PDF
Linux basico-4.PDFLinux basico-4.PDF
Linux basico-4.PDF
 
Manual de kicad
Manual de kicadManual de kicad
Manual de kicad
 

Linux Shells Introducción

  • 1. LINUX Básico TAKASHI SUGASAWA LINUX Básico (6. Shells(1)) 1
  • 2. Programa del curso 1. Introducción a LINUX 2. Operación básica de LINUX 3. Operación de archivos y directorios 4. Editor vi 5. Comprensión del sistema de ficheros 6. Shells(1) 7. Shells(2) 8. Shells(3) 9. Otros comandos LINUX Básico (6. Shells(1)) 2
  • 3. LINUX Básico 6. Shells(1) Índice 6.1 Comprensión de shells 6.2 Caracteres para completar nombres del ficheros 6.3 Tuberías y redireccionamientos de entrada y salida 6.4 Sustituciones 6.5 Comillas y apóstrofos 6.6 Grupos de comandos LINUX Básico (6. Shells(1)) 3
  • 4. 6.1 Comprensión de shells (1) ¿Qué es shell? • Shell es una aplicación como "Símbolo del sistema" en el Windows. • Shell empieza automáticamente cuando un usuario se registra. • Shell funciona como interfaz principal entre el sistema operativo y el usuario. • Shell interpreta sus comandos u órdenes. • Shell no es un parte del núcleo del sistema operativo. • Hay múltiples shells instalados (Shell Bourne, BASH, Shell C, tcsh, zsh,...). El shell por omisión de LINUX es bash. LINUX Básico (6. Shells(1)) 4
  • 5. 6.1(2) Variedad de shells Shell Bourne • El shell más antiguo. (/bin/sh) • El shell original de UNIX. • Está disponible en todos los sistemas de UNIX. Shell C • El shell antiguo y muy común también. (/bin/csh) • Está disponible en casi todos los sistemas de UNIX. • La sintaxis del shell C es muy parecida al lenguaje de programación C. BASH • El shell derivado de Shell Bourne. (/bin/bash) • Proporciona varias características mejoradas. • El shell por omisión de LINUX tcsh • El shell derivado de Shell C. (/bin/tcsh) • Proporciona varias características mejoradas. Hay otros, Shell Z, Shell Korn, ... LINUX Básico (6. Shells(1)) 5
  • 6. 6.1(3) Shells disponibles en el sistema Para saber los shells disponibles en el sistema, se referimos el archivo "/etc/shells". [usr001@linuxpc usr001]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/bash2 /bin/ash /bin/bsh /bin/tcsh /bin/csh LINUX Básico (6. Shells(1)) 6
  • 7. 6.1(4) Cambio el login shell Para cambiar el login shell, usamos el comando "chsh". (28) chsh cambiar el login shell. [usr001@linuxpc usr001]$ chsh Cambiando intérprete de órdenes para usr001. Password: Nuevo intérprete de órdenes [/bin/bash]: /bin/csh Se ha cambiado el intérprete de órdenes. [usr001@linuxpc usr001]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash (omisión) usr000:x:500:500::/home/usr000:/bin/bash usr001:x:501:501::/home/usr001:/bin/csh usr002:x:502:502::/home/usr002:/bin/bash (omisión) Si no hay una razón especial, vamos a usar BASH. LINUX Básico (6. Shells(1)) 7
  • 8. 6.2 Caracteres para completar nombres del ficheros (1) El carácter comodín “*” • El asterisco “*” es el carácter comodín, significa cualquiera y todos los caracteres. • Por ejemplo, “a*” significa todos los ficheros que comiencen con una a. [usr001@linuxpc usr001]$ ls abxx.txt abyy xx.txt xxyyzz [usr001@linuxpc usr001]$ ls a* abxx.txt abyy [usr001@linuxpc usr001]$ ls *.txt abxx.txt xx.txt [usr001@linuxpc usr001]$ ls *yy* abyy xxyyzz [usr001@linuxpc usr001]$ ls * abxx.txt abyy xx.txt xxyyzz [usr001@linuxpc usr001]$ ls b* ls: b*: No existe el fichero o el directorio [usr001@linuxpc usr001]$ rm * [usr001@linuxpc usr001]$ ls LINUX Básico (6. Shells(1)) 8
  • 9. 6.2(2) El carácter comodín “?” • El signo interrogación “?” es el carácter comodín, significa un solo carácter cualquier. [usr001@linuxpc usr001]$ ls a1 a2 a3 b1 b2 c1 d [usr001@linuxpc usr001]$ ls a? a1 a2 a3 [usr001@linuxpc usr001]$ ls ?1 a1 b1 c1 [usr001@linuxpc usr001]$ ls ?? a1 a2 a3 b1 b2 c1 [usr001@linuxpc usr001]$ ls ? d LINUX Básico (6. Shells(1)) 9
  • 10. 6.2(3) La expresión “[ ]” • La expresión “[ ]” (corchetes) significa un carácter simple si encierra entre corchetes una serie de caracteres. [usr001@linuxpc usr001]$ ls a1 a2 a3 a4 a5 b1 c1 d1 e1 x1 y1 z1 [usr001@linuxpc usr001]$ ls a[2-4] a2 a3 a4 [usr001@linuxpc usr001]$ ls [a-z]1 a1 b1 c1 d1 e1 x1 y1 z1 [usr001@linuxpc usr001]$ ls [ace][135] a1 a3 a5 c1 e1 [usr001@linuxpc usr001]$ ls [a-c,xz]? a1 a2 a3 a4 a5 b1 c1 x1 z1 LINUX Básico (6. Shells(1)) 10
  • 11. 6.3 Tuberías y redireccionamientos de entrada y salida (1) stdin, stdout, stderr Salida estándar (stdout) • Algunos comandos envían su salida hacia la pantalla. A la verdad, estos comandos envían su salida hacia un archivo especial llamado "stdout", y el sistema de LINUX asocia "stdout" con la pantalla. salida std cat /etc/passwd std out pantalla out LINUX Básico (6. Shells(1)) 11
  • 12. Entrada estándar (stdin) • Algunos comandos esperan una entrada desde la terminal o el teclado. A la verdad, estos comandos esperan la entrada desde un archivo especial llamado “stdin”, y el sistema de LINUX asocia "stdin" con el teclado. teclado entrada salida std std std std in cat - out pantalla in out [usr001@linuxpc usr001]$ cat - abc abc 123 123 xyz xyz Teclear "Cntl-d" para escapar. LINUX Básico (6. Shells(1)) 12
  • 13. Salida de error estándar (stderr) • Algunos comandos envían un mensaje de error hacia un pantalla. A la verdad, estos comandos envían un mensaje de error hacia un archivo especial llamado "stderr", y el sistema de LINUX asocia "stderr" con la pantalla. error std std comando err pantalla err No existe [usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ cat a > b error cat: a: No existe el fichero o el directorio [usr001@linuxpc usr001]$ ls b se ha [usr001@linuxpc usr001]$ cat b vacío creado [usr001@linuxpc usr001]$ "stdout" y "stderr" son diferentes. LINUX Básico (6. Shells(1)) 13
  • 14. 6.3(2) Tuberías • Con tuberías, se puede utilizar la salida de un comando como entrada de otro. • El carácter de tubería es una barra vertical "|". (ejemplo) queremos concatenar 2 archivos "/etc/passwd" y "/etc/group", y verlo con el paginador "more". si usamos un tubería ... cat /etc/passwd /etc/group > tmp cat /etc/passwd /etc/group | more more tmp archivo temporal • Una tubería conecta el "stdout" de un comando hacia el "stdin" de otro. tubería salida std std entrada comando1 std std comando2 out out conectar in in LINUX Básico (6. Shells(1)) 14
  • 15. Los comandos “more”, “less”, “grep”, “sort” se utilizan frecuentemente con las tuberías. (29) grep buscar patrones que se encuentren en archivos e informa dónde localiza esos patrones. (ej.) grep exp-reg arch1 [arch2 ...] sale los líneas que contienen “usr00” [usr000@linuxpc usr000]$ cat /etc/passwd | grep usr00 usr000:x:500:500::/home/usr000:/bin/bash usr001:x:501:501::/home/usr001:/bin/bash = “grep usr00 usr002:x:502:502::/home/usr002:/bin/bash /etc/passwd” usr003:x:503:503::/home/usr003:/bin/bash usr004:x:504:504::/home/usr004:/bin/bash usr005:x:505:505::/home/usr005:/bin/bash usr006:x:506:506::/home/usr006:/bin/bash usr007:x:507:507::/home/usr007:/bin/bash usr008:x:508:508::/home/usr008:/bin/bash usr009:x:509:509::/home/usr009:/bin/bash LINUX Básico (6. Shells(1)) 15
  • 16. (30) sort ordenar archivos de texto. (ej.) sort arch1 [arch2 ...] Para la salida en una sola columna [usr001@linuxpc usr001]$ ls -i1 400941 a 400940 abc 400936 bc 400942 defg usando primer campo 400937 xyz [usr001@linuxpc usr001]$ ls -i1 | sort 400936 bc 400937 xyz 400940 abc 400941 a descendentemente 400942 defg [usr001@linuxpc usr001]$ ls -i1 | sort -r 400942 defg 400941 a 400940 abc 400937 xyz usando segundo campo 400936 bc [usr001@linuxpc usr001]$ ls -i1 | sort -r +1 400937 xyz 400942 defg 400936 bc 400940 abc 400941 a LINUX Básico (6. Shells(1)) 16
  • 17. 6.3(3) Redireccionamientos Redireccionamiento de salida • Se emplea para redireccionar la salida de un comando hacia un archivo. En vez de que la salida vaya a la pantalla de la terminal, se coloca en un archivo. • Los símbolos de redireccionamiento de salida son “>”, “>>”, “2>”, “2>>”, “&>”. [usr001@linuxpc usr001]$ date jue sep 16 20:08:37 ECT 2004 [usr001@linuxpc usr001]$ date > arch1 [usr001@linuxpc usr001]$ cat arch1 jue sep 16 20:08:42 ECT 2004 LINUX Básico (6. Shells(1)) 17
  • 18. • El redireccionamiento de salida conecta el "stdout" o “stderr” de un comando hacia un archivo. std “>”, “>>” arch std arch out out ivo ivo salida “&>” comando arch arch “2>&1” “1>&2” ivo ivo mensaje de error std std arch arch err err ivo ivo “2>”, “2>>” LINUX Básico (6. Shells(1)) 18
  • 19. Diferencia entre “>” y “>>” (“2>” y “2>>”) • Si el archivo no existe, son iguales. • Si está el archivo, “>” sobrescribe el archivo, “>>” agregar al archivo. [usr001@linuxpc usr001]$ ls no existente [usr001@linuxpc usr001]$ whoami > arch1 [usr001@linuxpc usr001]$ cat arch1 usr001 ya existente [usr001@linuxpc usr001]$ date > arch1 [usr001@linuxpc usr001]$ cat arch1 se ha sobrescrito jue sep 16 22:06:45 ECT 2004 [usr001@linuxpc usr001]$ whoami >> arch1 [usr001@linuxpc usr001]$ cat arch1 jue sep 16 22:06:45 ECT 2004 usr001 se ha añadido (31) whoami Presenta su nombre de usuario. LINUX Básico (6. Shells(1)) 19
  • 20. “>” y “2>”, “&>” [usr001@linuxpc usr001]$ ls arch1 [usr001@linuxpc usr001]$ cat arch1 existente jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 no existente jue sep 16 22:18:33 ECT 2004 salida de “stdout” cat: arch2: No existe el fichero o el directorio salida de [usr001@linuxpc usr001]$ cat arch1 arch2 >a 2>b “stderr” [usr001@linuxpc usr001]$ cat a jue sep 16 22:18:33 ECT 2004 [usr001@linuxpc usr001]$ cat b cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 arch2 &>c [usr001@linuxpc usr001]$ cat c jue sep 16 22:18:33 ECT 2004 cat: arch2: No existe el fichero o el directorio LINUX Básico (6. Shells(1)) 20
  • 21. “2>&1” (“1>&2”) [usr001@linuxpc usr001]$ ls arch1 [usr001@linuxpc usr001]$ cat arch1 existente jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 no existente jue sep 16 22:30:52 ECT 2004 salida de “stdout” cat: arch2: No existe el fichero o el directorio salida de [usr001@linuxpc usr001]$ cat arch1 arch2 2>&1 | sort “stderr” cat: arch2: No existe el fichero o el directorio jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 >a 2>&1 = “&>” [usr001@linuxpc usr001]$ cat a jue sep 16 22:30:52 ECT 2004 cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 [usr001@linuxpc usr001]$ cat a arch2 >>a 2>&1 orden es jue sep 16 22:30:52 ECT 2004 importante cat: arch2: No existe el fichero o el directorio jue sep 16 22:30:52 ECT 2004 cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 arch2 2>&1 >a “2>&1” no cat: arch2: No existe el fichero o el directorio funciona [usr001@linuxpc usr001]$ cat a jue sep 16 22:30:52 ECT 2004 LINUX Básico (6. Shells(1)) 21
  • 22. Redireccionamiento de entrada • Se usa para redireccionar la entrada en un comando a fin de que provenga de un archivo y no de la terminal. • Los símbolos de redireccionamiento de entrada son “<”. • El símbolo “<” conecta el "stdin” de un comando con un archivo. < arch std entrada arch std comando ivo ivo conectar in in [usr001@linuxpc usr001]$ grep usr000 < /etc/passwd usr000:x:500:500::/home/usr000:/bin/bash los [usr001@linuxpc usr001]$ cat /etc/passwd | grep usr000 resultados son usr000:x:500:500::/home/usr000:/bin/bash iguales. [usr001@linuxpc usr001]$ grep usr000 /etc/passwd usr000:x:500:500::/home/usr000:/bin/bash LINUX Básico (6. Shells(1)) 22
  • 23. 6.4 Sustituciones (1) Sustitución de variables • Los variables son disponibles en el shell. • Algunos variables se definen por el shell o el sistema de LINUX. Variables principales disponibles en el shell HOME Nombre de ruta de acceso completo de su directorio base. LOGNAME Su nombre de usuario. PATH Directorios en los que el shell busca comandos. PS1 Principal indicador del shell. PWD Nombre de ruta de acceso completo del directorio de trabajo actual. SHELL Nombre de su shell actual. TERM Tipo de terminal que utiliza usted. LINUX Básico (6. Shells(1)) 23
  • 24. • Con el carácter “$”, podemos sustituir el nombre de un variable con su valor. sustituir [usr000@linuxpc usr000]$ echo $HOME /home/usr000 echo /home/usr000 [usr000@linuxpc usr000]$ ls -la $HOME total 28 drwx------ 2 usr000 usr000 4096 sep 17 12:37 . drwxr-xr-x 15 root root 4096 sep 15 23:46 .. -rw------- 1 usr000 usr000 1332 sep 17 12:28 .bash_history -rw-r--r-- 1 usr000 usr000 24 sep 15 23:39 .bash_logout -rw-r--r-- 1 usr000 usr000 191 sep 15 23:39 .bash_profile -rw-r--r-- 1 usr000 usr000 124 sep 15 23:39 .bashrc -rw-r--r-- 1 usr000 usr000 120 sep 15 23:39 .gtkrc [usr000@linuxpc usr000]$ cd $HOME cambia el directorio de trabajo actual a su directorio base. = “cd” = “cd ~” (32) echo Toma el argumento que se le pasa y lo escribe a la salida estándar. LINUX Básico (6. Shells(1)) 24
  • 25. 6.4(2) Sustitución de comandos • La sustitución de comandos sustituye el resultado de un comando por un parámetro de posición. • Para sustituir un comando, ponemos el comando entre dos “`” (acentos graves). ` comando ` [usr001@linuxpc usr001]$ whoami usr001 [usr001@linuxpc usr001]$ echo `whoami` = “echo usr001” usr001 [usr001@linuxpc usr001]$ grep `whoami` /etc/passwd usr001:x:501:501::/home/usr001:/bin/bash = “grep usr001 /etc/passwd” LINUX Básico (6. Shells(1)) 25
  • 26. 6.5 Comillas y apóstrofos (1) Comillas " " • Las comillas " " desactivan los caracteres especiales, “*”, “?”, “[”, “]”, “>”, “<”, ... • Sin embargo, la sustitución de variables “$” y comandos ` ` aún se lleva a afecto. [usr000@linuxpc usr000]$ ls a el carácter comodín [usr000@linuxpc usr000]$ ls * a un nombre de archivo [usr000@linuxpc usr000]$ ls "*" ls: *: No existe el fichero o el directorio [usr000@linuxpc usr000]$ date > " " un archivo del [usr000@linuxpc usr000]$ ls -l que nombre es un archivo un espacio. existe. total 4 -rw-rw-r-- 1 usr000 usr000 29 sep 17 09:47 -rw-rw-r-- 1 usr000 usr000 0 sep 17 09:46 a [usr000@linuxpc usr000]$ cat " " vie sep 17 09:47:08 ECT 2004 [usr000@linuxpc usr000]$ rm " " [usr000@linuxpc usr000]$ LINUX Básico (6. Shells(1)) 26
  • 27. sustitución de variables [usr000@linuxpc usr000]$ echo $HOME /home/usr000 [usr000@linuxpc usr000]$ echo "$HOME" para desactivar /home/usr000 la sustitución, [usr000@linuxpc usr000]$ echo "$HOME" "" es necesario. $HOME [usr000@linuxpc usr000]$ echo `whoami` sustitución de usr000 comandos [usr000@linuxpc usr000]$ echo "`whoami`" usr000 [usr000@linuxpc usr000]$ echo "`whoami`" para desactivar `whoami` la sustitución, "" es necesario. LINUX Básico (6. Shells(1)) 27
  • 28. (2) Apóstrofos ' ' • Los apóstrofos ' ' desactivan todo el análisis sintáctico de shell. [usr000@linuxpc usr000]$ ls a el carácter comodín [usr000@linuxpc usr000]$ ls ? a un nombre de archivo [usr000@linuxpc usr000]$ ls '?' ls: ?: No existe el fichero o el directorio [usr000@linuxpc usr000]$ echo $HOME sustitución de variables /home/usr000 [usr000@linuxpc usr000]$ echo '$HOME' se ha desactivado $HOME la sustitución. [usr000@linuxpc usr000]$ echo `whoami` usr000 sustitución de [usr000@linuxpc usr000]$ echo '`whoami`' comandos `whoami` se ha desactivado la sustitución. LINUX Básico (6. Shells(1)) 28
  • 29. 6.6 Grupos de comandos (1) Secuencia de comandos (punto y coma “;”) • Un comando simple se concluye con un “Enter”. • Si quiere colocar múltiples comandos en una línea de comando antes de presionar “Enter”, puede delimitar comandos individuales con un signo de punto y coma “;”. comando1 ; comando2 ; comando3 • El shell ejecuta cada comando en secuencia, como si usted hubiera escrito cada uno de ellos de forma independiente en una línea. [usr000@linuxpc usr000]$ whoami ; date ; cal usr000 vie sep 17 10:43:44 ECT 2004 septiembre de 2004 do lu ma mi ju vi sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 LINUX Básico (6. Shells(1)) 29
  • 30. 6.6(2) Grupos de comandos Llaves { } • Si quiere redireccionar la entrada o la salida hacia todos los comandos como un grupo, puede hacerlo al convertir la línea de comando en un grupo de comandos. • Un grupo de comandos son varios comandos encerrados entre llaves { }. { comando1; comando2; } > archivo { comando1; comando2; } | archivo un espacio es punto y coma es necesario. necesario. [usr000@linuxpc usr000]$ { whoami; date; } > a [usr000@linuxpc usr000]$ cat a usr000 vie sep 17 11:08:30 ECT 2004 [usr000@linuxpc usr000]$ { whoami; date; } | sort -r vie sep 17 11:09:23 ECT 2004 usr000 LINUX Básico (6. Shells(1)) 30
  • 31. ¡ Muchas gracias por su atención ! ¡ Hasta pronto ! En la próxima hora, vamos a aprender sobre el control de procesos. LINUX Básico (6. Shells(1)) 31